﻿#pragma once

#include "topo_base.h"

namespace CAGD
{

/**
 * 拓扑 lump.
 */
class TopoLump : public TopoBase
{
  public:
    /**
     * @brief 基本空构造.
     * @see
     */
    TopoLump();

    /**
     * @brief 析构.
     * @see
     */
    ~TopoLump();

    /**
     * @brief 所属 body.
     * @return
     * @see
     */
    TopoBody *&Body();

    /**
     * 所有 shell.
     */
    std::vector<TopoShell *> &Shells();

    /**
     * @brief 拓扑类型.
     * @return
     * @see
     */
    TopoType Type() const override;

  protected:
    TopoBody *m_body;                  // 所属 body
    std::vector<TopoShell *> m_shells; // 所有 shell
};

} // namespace CAGD
